//This file contains definition of control codes used by the driver,
//and by the application, and some USB definitions 




#ifndef __Testioctl__h_
#define __Testioctl__h_

#define PU_GET_NUMBEROFCONFIG		CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0800, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_GET_CONFIG_DESCRIPTOR	CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0801, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_GET_DEVICE_DESCRIPTOR	CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0802, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_GET_STRING_DESCRIPTOR	CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0803, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_CONFIG					CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0804, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_VENDOR_REQUEST			CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0805, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_PIPE_CONTROL				CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0806, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_SET_TIMEOUT				CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0807, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_SET_EVENT_DISCONNECT		CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0808, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_SET_EXCLUSIVE_OPEN		CTL_CODE(FILE_DEVICE_UNKNOWN, 0x0809, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_SET_EVENT_POWER_RESUME	CTL_CODE(FILE_DEVICE_UNKNOWN, 0x080a, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_GET_ERROR				CTL_CODE(FILE_DEVICE_UNKNOWN, 0x080b, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_NB_FRAMES_BUFFER			CTL_CODE(FILE_DEVICE_UNKNOWN, 0x080c, METHOD_BUFFERED, FILE_ANY_ACCESS)
#define PU_SUSPEND_CONTROL			CTL_CODE(FILE_DEVICE_UNKNOWN, 0x080d, METHOD_BUFFERED, FILE_ANY_ACCESS)

#define URB_FUNCTION_VENDOR_DEVICE                   0x0017
#define URB_FUNCTION_VENDOR_INTERFACE                0x0018
#define URB_FUNCTION_VENDOR_ENDPOINT                 0x0019
#define URB_FUNCTION_VENDOR_OTHER                    0x0020

#define URB_FUNCTION_CLASS_DEVICE                    0x001A
#define URB_FUNCTION_CLASS_INTERFACE                 0x001B
#define URB_FUNCTION_CLASS_ENDPOINT                  0x001C
#define URB_FUNCTION_CLASS_OTHER                     0x001F

#define STATUS_PIPE_OPEN 0xf0000001

#endif